Can a constructor be used to change the data inside an object?
No. Constructors always create new objects. (They might get data from an old object, but a completely separate object will be constructed using a different chunk of main memory.)
Here is the example program, this time modified to create a second Point object:
import java.awt.*;
class ChangingData2
{
public static void main ( String arg[] )
{
Point pt = new Point( 12, 45 ); // construct a Point
System.out.println( "First values: " + pt );
pt = new Point( -13, 49 ) ; // construct a new Point
System.out.println( "Final values: " + pt );
}
}
Here is a picture showing the situation before and after the second assignment statement:
In the "After" picture, the first object is shaded to
emphasis that it is now "garbage."
The reference variable pt refers to the newly created object.